package 差分Plus离散化;

import java.util.Arrays;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/5/30 20:34
 */
public class lc1109航班预定统计 {
    /*
     差分 练手的题目！
     对差分数组 求 前缀和！
     「区间修改 + 单点查询」

     区间 修改 + 单点查询！

     ***  attention***
     差分数组的 大小的 是  集合 值域的 大小， 而不是 数组的长度！
     不要这一点所迷惑！ 所以 有 离散 + 差分 这一说法

     */

    public int[] corpFlightBookings(int[][] bookings, int n) {
        int ans[] = new int[n];
        int diff[] = new int[n + 2];  // 这道题的下标 有点特殊，所以有点 这里是 n + 2
        // 这里取 n + 2 并不是 因为 下标，而是因为 航班就是 从1 ~ n ， 也就是 集合的值域 就是 n，跟 下标是没有关系的
        // 建好  差分 数组
        for (int i = 0; i < bookings.length; i++) {
            diff[bookings[i][0]] += bookings[i][2];
            diff[bookings[i][1] + 1] -= bookings[i][2];
        }
        // 开始求前缀和
        int sum = 0;
        for (int i = 0; i < n; i++) {
            sum += diff[i + 1];
            ans[i] = sum;
        }
        return ans;
    }


    /*
     进行 一个 差分的 熟悉
     一个 数组 nums ， 0 ~ n - 1
     对该区间 进行 修改， 并查询！
     */

    public void difference() {

    }




}
